 
 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>镜像站@Layui 底层方法</title>
<meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="format-detection" content="telephone=no">
  <script>
  ;!function(){self!==parent&&(location.href="http://www.baidu.com/")}();
  </script>
  <link rel="stylesheet" href="../../../res.layui.com/layui/dist/css/layui.css" tppabs="http://res.layui.com/layui/dist/css/layui.css?t=1632428048355"  media="all">
  <link rel="stylesheet" href="../../../res.layui.com/static/css/global.css" tppabs="http://res.layui.com/static/css/global.css?t=1632428048355-19" media="all">
</head>
<body>


<div class="layui-header header header-doc" autumn>
  <div class="layui-container">
    <a class="logo" href="../../index.htm" tppabs="http://www.layui.com/">
      <img src="../../../res.layui.com/static/images/layui/logo.png" tppabs="http://res.layui.com/static/images/layui/logo.png" alt="layui">
    </a>
    <div class="layui-form layui-hide-xs component" lay-filter="LAY-site-header-component"></div>
    <div class="layui-hide-xs site-notice"></div>
    
    <ul class="layui-nav" id="LAY_NAV_TOP">
      <li class="layui-nav-item layui-this">
        <a href="../index.htm" tppabs="http://www.layui.com/doc/">文档</a> 
      </li>
      <li class="layui-nav-item ">
        <a href="../../demo/index.htm" tppabs="http://www.layui.com/demo/">示例</a>
      </li>
      
      <li class="layui-nav-item">
        <a href="javascript:;">
          <!--<span class="layui-badge-dot" style="left:0; right: auto; margin: -4px 0 0 5px;"></span>--> 
          周边
        </a>
        <dl class="layui-nav-child layui-nav-child-c">  
          <dd class="layui-hide-sm layui-show-xs" lay-unselect>
            <a href="https://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">问题反馈</a>
            <hr>
          </dd>
          
          <dd lay-unselect><a href="../../alone.html" tppabs="http://www.layui.com/alone.html" target="_blank" lay-unselect>独立组件</a></dd>
          <dd lay-unselect><a href="../../../fly.layui.com/extend/index.htm" target="_blank">扩展组件</a></dd>
        </dl>
      </li>
      
      <li class="layui-nav-item layui-hide-xs">
        <a href="http://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">反馈</a>
      </li>
    </ul>
  </div>
</div>
 
<!-- 让IE8/9支持媒体查询，从而兼容栅格 -->
<!--[if lt IE 9]>
  <script src="../../../other/html5shiv/r29/html5.min.js" tppabs="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  <script src="../../../other/respond.js/1.4.2/respond.min.js" tppabs="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
 
<ul class="site-dir">
  <li><a href="#config"><cite>全局配置</cite><em>config</em></a></li>
  <li><a href="#define"><cite>定义模块</cite><em>define</em></a></li>
  <li><a href="#use"><cite>加载模块</cite><em>use</em></a></li>
  <li><a href="#link"><cite>动态加载 CSS</cite><em>link</em></a></li>
  <li><a href="#data"><cite>本地存储</cite><em>data</em></a></li>
  <li><a href="#device"><cite>浏览器信息</cite><em>device</em></a></li>
  <li><a href="#other"><cite>其它底层方法</cite> <span class="layui-badge-dot"></span></a></li>
  <li><a href="#third_party"><cite>第三方工具</cite></a></li>
</ul>
<div class="layui-container layui-row">
  
<div class="layui-col-md3">
  <div class="layui-panel site-menu">
    <ul class="layui-menu layui-menu-lg">
      <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
        <div class="layui-menu-body-title">
          基础说明
        </div>
        <hr>
        <ul>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../index.htm" tppabs="http://www.layui.com/doc/">
                <span>开始使用 </span> 
                <span class="layui-font-12 layui-font-gray">Getting Started</span>
              </a>
              
            </div>
          </li>
          <li class="layui-menu-item-checked2">
            <div class="layui-menu-body-title">
              <a href="infrastructure.html" tppabs="http://www.layui.com/doc/base/infrastructure.html">
                <span>底层方法 </span>
                <span class="layui-font-12 layui-font-gray">基础支撑</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="element.html" tppabs="http://www.layui.com/doc/base/element.html">
                <span>页面元素 </span>
                <span class="layui-font-12 layui-font-gray">规范 公共类 属性</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="modules.html" tppabs="http://www.layui.com/doc/base/modules.html">
                <span>模块规范 </span>
                <span class="layui-font-12 layui-font-gray">使用 扩展</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="faq.html" tppabs="http://www.layui.com/doc/base/faq.html">
                <span>常见问题 </span>
                <span class="layui-font-12 layui-font-gray">FAQ</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="changelog.html" tppabs="http://www.layui.com/doc/base/changelog.html">
                <span>更新日志 </span>
                <span class="layui-font-12 layui-font-gray">changelog</span>
                
                  <span class="layui-badge-dot"></span>
                
              </a>
            </div>
          </li>
        </ul>
      </li>
      
      <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
        <div class="layui-menu-body-title">
          页面元素
        </div>
        <hr>
        <ul>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/layout.html" tppabs="http://www.layui.com/doc/element/layout.html">
                <span>布局 </span>
                <span class="layui-font-12 layui-font-gray">栅格 后台管理布局</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/color.html" tppabs="http://www.layui.com/doc/element/color.html">
                <span>颜色 </span>
                <span class="layui-font-12 layui-font-gray">主色调 颜色搭配</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/icon.html" tppabs="http://www.layui.com/doc/element/icon.html">
                <span>图标 </span>
                <span class="layui-font-12 layui-font-gray">iconfont 字体图标</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/anim.html" tppabs="http://www.layui.com/doc/element/anim.html">
                <span>动画 </span>
                <span class="layui-font-12 layui-font-gray">内置 CSS3 动画</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/button.html" tppabs="http://www.layui.com/doc/element/button.html">
                <span>按钮 </span>
                <span class="layui-font-12 layui-font-gray">button</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/form.html" tppabs="http://www.layui.com/doc/element/form.html">
                <span>表单 </span>
                <span class="layui-font-12 layui-font-gray">form 元素集合</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/nav.html" tppabs="http://www.layui.com/doc/element/nav.html">
                <span>导航 </span>
                <span class="layui-font-12 layui-font-gray">nav 面包屑</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/menu.html" tppabs="http://www.layui.com/doc/element/menu.html">
                <span>菜单 </span>
                <span class="layui-font-12 layui-font-gray">menu 基础菜单</span>
                
                  <span class="layui-badge-dot"></span>
                
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/tab.html" tppabs="http://www.layui.com/doc/element/tab.html">
                <span>选项卡 </span>
                <span class="layui-font-12 layui-font-gray">Tabs 切换</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/progress.html" tppabs="http://www.layui.com/doc/element/progress.html">
                <span>进度条 </span>
                <span class="layui-font-12 layui-font-gray">progress</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/panel.html" tppabs="http://www.layui.com/doc/element/panel.html">
                <span>面板 </span>
                <span class="layui-font-12 layui-font-gray">panel 卡片 折叠</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/table.html" tppabs="http://www.layui.com/doc/element/table.html">
                <span>表格 </span>
                <span class="layui-font-12 layui-font-gray">静态 table</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/badge.html" tppabs="http://www.layui.com/doc/element/badge.html">
                <span>徽章 </span>
                <span class="layui-font-12 layui-font-gray">小圆点  小边框</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/timeline.html" tppabs="http://www.layui.com/doc/element/timeline.html">
                <span>时间线 </span>
                <span class="layui-font-12 layui-font-gray">timeline</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../element/auxiliar.html" tppabs="http://www.layui.com/doc/element/auxiliar.html">
                <span>辅助 </span>
                <span class="layui-font-12 layui-font-gray">引用 字段集 横线等</span>
              </a>
            </div>
          </li>
        </ul>
      </li>
      
      <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
        <div class="layui-menu-body-title">
          内置模块
        </div>
        <hr>
        <ul>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/layer.html" tppabs="http://www.layui.com/doc/modules/layer.html">
                <span>弹出层 </span>
                <span class="layui-font-12 layui-font-gray">layer</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/laydate.html" tppabs="http://www.layui.com/doc/modules/laydate.html">
                <span>日期与时间选择 </span>
                <span class="layui-font-12 layui-font-gray">laydate</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/laypage.html" tppabs="http://www.layui.com/doc/modules/laypage.html">
                <span>分页 </span>
                <span class="layui-font-12 layui-font-gray">laypage</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/laytpl.html" tppabs="http://www.layui.com/doc/modules/laytpl.html">
                <span>模板引擎 </span>
                <span class="layui-font-12 layui-font-gray">laytpl</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/table.html" tppabs="http://www.layui.com/doc/modules/table.html">
                <span>数据表格 </span>
                <span class="layui-font-12 layui-font-gray">table</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/form.html" tppabs="http://www.layui.com/doc/modules/form.html">
                <span>表单 </span>
                <span class="layui-font-12 layui-font-gray">form</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/upload.html" tppabs="http://www.layui.com/doc/modules/upload.html">
                <span>文件上传 </span>
                <span class="layui-font-12 layui-font-gray">upload</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/dropdown.html" tppabs="http://www.layui.com/doc/modules/dropdown.html">
                <span>下拉菜单 </span>
                <span class="layui-font-12 layui-font-gray">dropdown</span>
                
                  <span class="layui-badge-dot"></span>
                
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/transfer.html" tppabs="http://www.layui.com/doc/modules/transfer.html">
                <span>穿梭框 </span>
                <span class="layui-font-12 layui-font-gray">transfer</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/tree.html" tppabs="http://www.layui.com/doc/modules/tree.html">
                <span>树形组件 </span>
                <span class="layui-font-12 layui-font-gray">tree</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/colorpicker.html" tppabs="http://www.layui.com/doc/modules/colorpicker.html">
                <span>颜色选择器 </span>
                <span class="layui-font-12 layui-font-gray">colorpicker</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/element.html" tppabs="http://www.layui.com/doc/modules/element.html">
                <span>常用元素操作 </span>
                <span class="layui-font-12 layui-font-gray">element</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/slider.html" tppabs="http://www.layui.com/doc/modules/slider.html">
                <span>滑块 </span>
                <span class="layui-font-12 layui-font-gray">slider</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/rate.html" tppabs="http://www.layui.com/doc/modules/rate.html">
                <span>评分 </span>
                <span class="layui-font-12 layui-font-gray">rate</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/carousel.html" tppabs="http://www.layui.com/doc/modules/carousel.html">
                <span>轮播 </span>
                <span class="layui-font-12 layui-font-gray">carousel</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/flow.html" tppabs="http://www.layui.com/doc/modules/flow.html">
                <span>流加载 </span>
                <span class="layui-font-12 layui-font-gray">flow</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/util.html" tppabs="http://www.layui.com/doc/modules/util.html">
                <span>工具组件 </span>
                <span class="layui-font-12 layui-font-gray">util</span>
              </a>
            </div>
          </li>
          <li class="">
            <div class="layui-menu-body-title">
              <a href="../modules/code.html" tppabs="http://www.layui.com/doc/modules/code.html">
                <span>代码高亮显示 </span>
                <span class="layui-font-12 layui-font-gray">code</span>
              </a>
            </div>
          </li>
        </ul>
      </li>
    </ul>
  </div>
  <div class="layui-hide-v"> - </div>
</div>

  
  <div class="layui-col-md9 site-content">
    <h1 class="site-h1">底层方法</h1>
    <blockquote class="layui-elem-quote">
      <p>本篇主要介绍基础库所发挥的作用，其中过滤了大部分在外部不常用的方法，侧重罗列了基础框架支撑。</p>
    </blockquote>
    
    
    
    <div class="site-title">
      <fieldset><legend><a name="config">全局配置</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.config(options)</em></p>
      <p>你可以在使用模块之前，全局化配置一些参数，尽管大部分时候它不是必须的。所以我们目前提供的全局配置项非常少，这也是为了减少一些不必要的工作，尽可能让使用变得更简单。目前支持的全局配置项如下：</p>
      <pre class="layui-code">
layui.config({
  dir: '/res/layui/' //layui.js 所在目录（<span style="color: #FF5722">如果是 script 单独引入 layui.js，无需设定该参数</span>）一般可无视
  ,version: false //一般用于更新模块缓存，默认不开启。设为 true 即让浏览器不缓存。也可以设为一个固定的值，如：201610
  ,debug: false //用于开启调试模式，默认 false，如果设为 true，则JS模块的节点会保留在页面
  ,base: '' //设定扩展的 layui 模块的所在目录，一般用于外部模块扩展
});
      </pre>
      <p>如果你对 layui.js 本身进行了动态加载等其他特殊场景，那么上述<code>layui.config</code> 所设定的<code>dir</code>参数会因此失效，它会在部分组件的依赖文件（css）加载后才执行，此时你可以在动态加载 <code>layui.js</code> 之前预先定义一个我们约定好的全局对象：</p>
      <pre class="layui-code">
&lt;script&gt;  
var LAYUI_GLOBAL = {
  dir: '/res/layui/' //layui.js 所在目录（<span class="layui-font-red">layui 2.6.6 开始新增</span>）
};
&lt;/script&gt;    
      </pre>
      <blockquote class="layui-elem-quote layui-text">
        提示：以上 dir 参数的目录设定仅针对特殊场景，如是采用 script 标签正常引入 layui 的，可以无视该 dir 参数。
      </blockquote>
    </div>
    
    <div class="site-title">
      <fieldset><legend><a name="define">定义模块</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.define([mods], callback)</em></p>
      <p>通过该方法可在新的 JS 文件中定义一个 <em>layui 模块</em>。参数 mods 是可选的，用于声明该模块所依赖的模块。callback 即为模块加载完毕的回调函数，它返回一个 exports 参数，用于输出该模块的接口。</p>
      <pre class="layui-code">
/** demo.js **/
layui.define(function(exports){
  //do something
  
  exports('demo', {
    msg: 'Hello Demo'
  });
});
      </pre>
      <p>
        跟 RequireJS 最大不同的地方在于接口输出，exports 是一个函数，它接受两个参数，第1个参数为模块名，第2个参数为模块接口。
        <br>当你声明了上述的一个模块后，你就可以在外部使用了，demo 就会注册到 layui 对象下，即可通过 <code>var demo = layui.demo</code> 去得到该模块接口。你也可以在定义一个模块的时候，声明该模块所需的依赖，如：</p>
      <pre class="layui-code">
/** demo.js **/
layui.define(['layer', 'laypage', 'mod1'], function(exports){ //此处 mod1 为你的任意扩展模块
  //do something
  
  exports('demo', {
    msg: 'Hello Demo'
  });
});
      </pre>
      <p>上述的 <code>layer、laypage</code> 都是 layui 的内置模块。</p>
    </div>
    
    <div class="site-title">
      <fieldset><legend><a name="use">加载模块</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.use([mods], callback)</em></p>
      <div class="layui-text">
        <ul>
          <li>
            参数 <em>mods</em>：如果填写，必须是一个 layui 合法的模块名（不能包含目录）。
            <br><span class="layui-font-red">从 layui 2.6 开始</span>，若 mods 不填，只传一个 callback 参数，则表示引用所有内置模块。
          </li>
          <li>
            参数 <em>callback</em>：即为模块加载完毕的回调函数。
            <br><span class="layui-font-red">从 layui 2.6 开始</span>，该回调会在 html 文档加载完毕后再执行，确保你的代码在任何地方都能对元素进行操作。
          </li>
        </ul>
      </div>
      <pre class="layui-code">
//引用指定模块
layui.use(['layer', 'laydate'], function(){
  var layer = layui.layer
  ,laydate = layui.laydate;
  
  //do something
});
 
//<span class="layui-font-red">引用所有模块（layui 2.6 开始支持）</span>
layui.use(function(){
  var layer = layui.layer
  ,laydate = layui.laydate
  ,table = layui.table;
  //…
  
  //do something
});
      </pre>
      <p>你还可以通过回调函数得到模块对象，如</p>
      <pre class="layui-code">
//通过回调的参数得到模块对象
layui.use(['layer', 'laydate', 'table'], function(layer, laydate, table){
  
  //使用 layer
  layer.msg('test');
  
  //使用 laydate
  laydate.render({});
  
  //使用 table
  table.render({})
});
      </pre>
      <p>
    </div>
    
    <!--<div class="site-title">
      <fieldset><legend><a name="all">加载完整内置模块</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.all(callback)</em></p>
      <p>除了使用use方法加载特定需要的模块，Layui实际上还提供了构建后的完整版模块，它是一个合并的文件，通过all方法即可加载，目前它只有<em>150kb</em>上下，gzip后只有<em>50kb</em>，所以说这是一个比较小的资源（可见Layui是多么的轻灵）。如果你的页面需要大量用到layui的许多模块，我们推荐你使用该方法，同时他也只会产生一个资源请求，简单粗暴又省事，实为懒人所必备之神器也！</p>
      <pre class="layui-code">
/**
  my.js
  依赖layui的全部模块
**/
 
layui.all(function(){
  var layer = layui.layer
  ,laytpl = layui.laytpl
  ,laypage = layui.laypage
  ,laydate = layui.data
  //……
 
  //尽情地使用Layui全部的内置模块吧，妈妈说根本不用去想页面可能要用到什么模块了呢。。
});
      </pre>
      <blockquote class="layui-elem-quote layui-quote-nm">
        不过，我们并不十分推荐你采用该方式，因为如果你要用到全部内置模块，还不如直接采用：<a href="/doc/#simple">非模块化方式</a>
      </blockquote>
    </div>-->
    
    <div class="site-title">
      <fieldset><legend><a name="link">动态加载 CSS</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.link(href)</em></p>
      <p>href 即为 css 路径。注意：该方法并非是你使用 layui 所必须的，它一般只是用于动态加载你的外部 CSS 文件。</p>
    </div>
    
    <div class="site-title">
      <fieldset><legend><a name="data">本地存储</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>本地存储是对 localStorage 和 sessionStorage 的友好封装，可更方便地管理本地数据。</p>
      <blockquote class="layui-elem-quote layui-quote-nm layui-text">
        <ul>  
          <li>localStorage 持久化存储：<em>layui.data(table, settings)，数据会永久存在，除非物理删除。</em></li>
          <li>sessionStorage 会话性存储：<em>layui.sessionData(table, settings)</em>，页面关闭后即失效。注：<em>layui 2.2.5 新增</em></li>
        </ul>
      </blockquote>
      <p>上述两个方法的使用方式是完全一样的。其中参数 <em>table</em> 为表名，<em>settings</em>是一个对象，用于设置 key、value。下面以 layui.data 方法为例：
      <pre class="layui-code">
//【增】：向 test 表插入一个 nickname 字段，如果该表不存在，则自动建立。
layui.data('test', {
  key: 'nickname'
  ,value: '贤心'
});
 
//【删】：删除 test 表的 nickname 字段
layui.data('test', {
  key: 'nickname'
  ,remove: true
});
layui.data('test', null); //删除test表
  
//【改】：同【增】，会覆盖已经存储的数据
  
//【查】：向 test 表读取全部的数据
var localTest = layui.data('test');
console.log(localTest.nickname); //获得“贤心”
      </pre>
    </div>
    
    <div class="site-title">
      <fieldset><legend><a name="device">获取浏览器信息</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>方法：<em>layui.device(key)</em>，参数 key 是可选的</p>
      <p>由于 layui 的一些功能进行了兼容性处理和响应式支持，因此该方法同样发挥了至关重要的作用。其返回的信息如下：</p>
      <pre class="layui-code">
var device = layui.device();
 
//device 即可根据不同的设备返回下述不同的信息
<pre class="layui-code" lay-skin="notepad">
{
  os: "windows" //当前浏览器所在的底层操作系统，如：Windows、Linux、Mac 等
  ,ie: false //当前浏览器是否为 ie6-11 的版本，如果不是 ie 浏览器，则为 false
  ,weixin: false //当前浏览器是否为微信 App 环境
  ,android: false //当前浏览器是否为安卓系统环境
  ,ios: false //当前浏览器是否为 IOS 系统环境
  ,mobile: false //当前浏览器是否为移动设备环境（v2.5.7 新增）
}
</pre>
      </pre>
      <p>
        有时你的 App 可能会对 userAgent 插入一段特定的标识，譬如：
        <blockquote class="layui-elem-quote layui-quote-nm" style="color: #999;">
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 <a>myapp/1.8.6</a> Safari/537.36
        </blockquote>
      </p>
      <p>你要验证当前的 WebView 是否在你的 App 环境，即可通过上述的<em>myapp</em>（即为 Native 给 Webview 插入的标识，可以随意定义）来判断。</p>
      <pre class="layui-code">
var device = layui.device('myapp');
if(device.myapp){
  alert('在我的App环境');
}      
      </pre>
      
    </div>
    
    <div class="site-title">
      <fieldset><legend><a name="other">其它底层方法</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>除上述介绍的方法外，layui 内部还提供了许多底层引擎，他们同样是整个 layui 框架的有力支撑，在日常应用中通常也会用到：</p>
      <table class="layui-table">
        <thead>
          <tr>
            <th style="width: 280px;">方法/属性</th>
            <th>描述</th>
          </tr> 
        </thead>
        <tbody>
          <tr>
            <td>layui.cache</td>
            <td>静态属性。获得一些配置及临时的缓存信息</td>
          </tr>
          <tr>
            <td>layui.extend(options)</td>
            <td>拓展一个模块别名，如：layui.extend({test: '/res/js/test'})</td>
          </tr>
          <tr>
            <td>layui.each(obj, fn)</td>
            <td>对象（Array、Object、DOM 对象等）遍历，可用于取代 for 语句</td>
          </tr>
          <tr>
            <td>layui._typeof(operand)</td>
            <td>
              获取详细数据类型（基本数据类型和各类常见引用类型）如：
              <p>
                <code>layui._typeof([]); //array</code> 
                <code>layui._typeof({}); //object</code>
                <code>layui._typeof(new Date()); //date</code>等等。
              </p>
              <span class="layui-font-red">该方法为 layui 2.6.7 新增</span>
            </td>
          </tr>
          <tr>
            <td>layui._isArray(obj)</td>
            <td>
              对象是否为泛数组结构。如 Array、NodeList、jQuery 对象等等。
              <p>
                <code>layui._isArray([1,6]); //true</code> <code>layui._isArray($('div')); //true</code> 
                <code>layui._isArray(document.querySelectorAll('div')); //true</code>
              </p>
              <span class="layui-font-red">该方法为 layui 2.6.7 新增</span>
            </td>
          </tr>
          <tr>
            <td>layui.getStyle(node, name)</td>
            <td>
              获得一个原始 DOM 节点的 style 属性值，如：
              <br><code>layui.getStyle(document.body, 'font-size')</code>
            </td>
          </tr>
          <tr>
            <td>layui.img(url, callback, error)</td>
            <td>图片预加载</td>
          </tr>
          <tr>
            <td>layui.sort(obj, key, desc)</td>
            <td>
              将数组中的对象按某个成员重新对该数组排序，如：
              <br><code>layui.sort([{a: 3},{a: 1},{a: 5}], 'a')</code>
            </td>
          </tr>
          <tr>
            <td>layui.router()</td>
            <td>获得 location.hash 路由结构，一般在单页面应用中发挥作用。</td>
          </tr>
          <tr>
            <td>layui.url(href)</td>
            <td>
              用于将一段 URL 链接中的 pathname、search、hash 属性值进行对象化处理
              <p>
                参数： <em>href</em> 可选。若不传，则自动读取当前页面的 url（即：location.href）
                <br>示例：<code>var url = layui.url();</code>
              </p>
            </td>
          </tr>
          <tr>
            <td>layui.hint()</td>
            <td>
              向控制台打印一些异常信息，目前只返回了 error 方法：
              <br><code>layui.hint().error('出错啦');</code>
            </td>
          </tr>
          
          <tr>
            <td>layui.stope(e)</td>
            <td>阻止事件冒泡</td>
          </tr>
          <tr>
            <td>layui.onevent(modName, events, callback)</td>
            <td>增加自定义模块事件。有兴趣的同学可以阅读 layui.js 源码以及 form 模块</td>
          </tr>
          <tr>
            <td>layui.event(modName, events, params)</td>
            <td>执行自定义模块事件，搭配 onevent 使用</td>
          </tr>
          <tr>
            <td>layui.off(events, modName)</td>
            <td>
              用于移除模块相关事件的监听（v2.5.7 新增）
              <p style="line-height:26px;">
                如：<code>layui.off('select(filter)', 'form')</code>，
                <br>那么 <code>form.on('select(filter)', callback)</code>的事件将会被移除。
              </p>
            </td>
          </tr>
          <tr>
            <td>layui.factory(modName)</td>
            <td>用于获取模块对应的 define 回调函数</td>
          </tr>
        </tbody>
      </table>
    </div>
    
    
    <div class="site-title">
      <fieldset><legend><a name="third_party">第三方工具</a></legend></fieldset>
    </div>
    <div class="site-text">
      <p>layui <strong>部分模块</strong>依赖<em> jQuery</em>（比如 layer），但是你并不用去额外加载 jQuery。layui 已经将 jQuery 最稳定的一个版本改为 layui 的内部模块，当你去使用 layer 之类的模块时，它会首先判断你的页面是否已经引入了 jQuery，如果没有，则加载内部的 jQuery 模块，如果有，则不会加载。</p> 
      <p>另外，我们的图标取材于阿里巴巴矢量图标库（<em>iconfont</em>），构建工具采用<em> Gulp </em>。除此之外，不依赖于任何第三方工具。</p>
    </div>
    
    <div class="layui-elem-quote">
  <p>layui - 在每一个细节中，用心与你沟通</p>
</div>
    
  </div>
</div>
  

<div class="layui-footer footer footer-doc">
    <p>
      Copyright &copy; 2021 <a href="../../index.htm" tppabs="http://www.layui.com/">layui.com</a> MIT Licensed</p>
    <p>
      <a href="../../about/disclaimer.html" tppabs="http://www.layui.com/about/disclaimer.html" target="_blank">免责声明</a> 
      <a href="../../about/relatedlinks.html" tppabs="http://www.layui.com/about/relatedlinks.html" target="_blank">友链</a>
      <a href="javascript:;"  site-event="weixinmp">公众号</a>
      <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=36010902000274"  rel="nofollow">
        <img src="../../../res.layui.com/upload/2021_8/168_1628847893037_87773.png" tppabs="http://cdn.layui.com/upload/2021_8/168_1628847893037_87773.png">
        公网安备 00000000000000号
      </a>
      <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">ICP备00000000号</a>
    </p>
    <div class="site-union">
      <p class="site-union-desc">
        <span>
          感谢以下平台提供云加速支持
        </span>
      </p>

    </div>
</div>
<script>
window.global = {
  pageType: 'doc'
  ,preview: function(){
    var preview = document.getElementById('LAY_preview');
    return preview ? preview.innerHTML : '';
  }()
};
</script>

<div class="site-tree-mobile layui-hide">
  <i class="layui-icon layui-icon-spread-left"></i>
</div>
<div class="site-mobile-shade"></div>
 
<script src="../../../res.layui.com/layui/dist/layui.js" tppabs="http://res.layui.com/layui/dist/layui.js?t=1632428048355" charset="utf-8"></script>
<script>
layui.config({
  base: '../../../res.layui.com/static/lay/modules/layui/'
  ,version: '1632428048355'
}).use('global');
</script>
 


<script>
</script>
</body>
</html>